iT邦幫忙

2026 iThome 鐵人賽

DAY 9
0
ChatGPT & Codex

AI Visual Learning Lab: 30 天用 ChatGPT × Codex 打造 AI 視覺化學習工具系列 第 9

Day 9|我不想再複製貼上問 AI:看不懂哪裡,就直接點哪裡

  • 分享至 

  • xImage
  •  

前幾天一直在處理一件事:

怎麼讓 AI 把教材變得更好懂?

從一開始只有文字整理,到後來有 Visual Flow、Concept Map、Comparison,再到 PDF 裡的公式、圖表和波形也能被看見,Visual Learning Lab 已經慢慢可以把一份教材重新整理成比較適合學習的樣子。

但今天我突然想到一個很日常的問題。

就算教材已經被整理過了,我還是可能有某一句看不懂。

以前遇到這種狀況,我通常會:

看到一個不懂的地方
↓
複製那句話
↓
打開 ChatGPT
↓
貼上去
↓
再補一句:
「這是在講某某教材,可以解釋一下嗎?」

其實也不是多麻煩。

但如果一堂課裡一直遇到這種情況,每次都要重新複製、重新補上下文,久了就很打斷閱讀。

所以 Day 9 我想試一個第一次比較像「互動式學習工具」的功能:

Explain This。

看到哪裡不懂,就直接在原本的教材旁邊點一下。

不用離開現在的頁面,也不用重新把上下文講一次。

先不要做太大的版本

我最一開始想到的其實更理想。

例如直接反白任意一句:

轉差是感應馬達產生轉矩的重要條件

然後跳出:

Explain this
Why?
Give me an example
Show me visually

甚至 Concept Map 上的節點也可以直接點。

但這種做法如果現在就硬做,前端互動會突然複雜很多。

尤其目前還是 Streamlit,要處理瀏覽器裡任意文字 selection、知道使用者到底反白哪一句,再把它跟原本教材 context 接起來,今天可能會直接變成另一個坑。

所以 Explain This v0 我先縮小範圍。

目前只有兩種東西可以直接問:

Key Concepts
Visual Evidence

也就是 AI 已經整理過、而且知道來源位置的內容。

https://ithelp.ithome.com.tw/upload/images/20260923/20184158JH5PSXYn4r.png

點下去,不只是把原句再講一次

這次我沒有做成一般聊天框。

點下 Explain this 之後,系統會另外呼叫一次 GPT,專門處理這個小問題。

回傳內容目前固定整理成四個部分:

In simple terms

Why it matters

Intuition or example

Source context

第一個就是白話解釋。

第二個是告訴我:

我為什麼需要懂這個?

第三個則盡量給一個直覺、小例子或類比。

最後才補來源。

例如我在 Sinusoids 裡直接點:

Sinusoids

它不只跟我說「正弦波是一種週期訊號」,還會順著目前正在讀的教材解釋:

v(t) = Vₘ cos(ωt + θ)

其中 Vₘ 是振幅、ω 控制變化速度、θ 控制水平相位。

接著再告訴我為什麼這些東西之後會跟 phasors、impedance、admittance 有關。

https://ithelp.ithome.com.tw/upload/images/20260923/20184158FjvlHld4Uf.png
這跟另外開一個空白 ChatGPT 最大的差別是:

它已經知道我現在在看什麼。

上下文不用再自己補一次

Explain This request 不只是丟一句:

Please explain "Sinusoids"

而是會一起帶上目前已經存在的 context。

例如:

現在選中的 Key Concept
目前整份教材的 Quick Summary
這個 Concept 的來源頁碼
對應頁面的抽取文字
附近的 Key Concepts
Relationships

如果點的是 Visual Evidence,還會知道:

這是 Formula / Graph / Diagram
它在哪一頁
原本 Visual Evidence 怎麼描述它
它的 Learning Value 是什麼

也就是說,使用者不用每次重新說:

我現在在讀正弦波,這是交流電路的教材,第 2 頁有一張圖……

這些 context 系統已經有了。

用 Visual Evidence 測一次

我接著直接拿 PDF 裡的 Visual Evidence 測。

這一項是在 Page 2:

Graph — Page 2

內容是正弦波 v(t) 的圖形,裡面標出了:

Vₘ
T
t_max
ωt
t

按下 Explain This 之後,它開始把這張圖拆開解釋。

例如:

Vₘ
→ 波形距離中心線的最大幅度

T
→ 完成一個完整週期需要的時間

ω
→ 波形變化的快慢

θ
→ 波形在水平軸上的位移

還會補一句:

如果相鄰兩個波峰相隔 T 秒,那就是這個波形的週期;如果用 ωt 當橫軸,一個完整週期則對應 2π。

undefined
這個結果我自己滿喜歡。

因為 Visual Evidence 原本的角色只是告訴我:

「這頁有一張值得看的圖。」

現在開始變成:

「如果你連這張圖都還看不懂,可以直接繼續往下問。」

但有一個很容易浪費 API 的問題

做到這裡其實有一個技術問題滿重要。

Streamlit 的按鈕被點擊時,整個 script 會 rerun。

如果什麼都不處理,那使用者只是按了一次:

Explain this

有可能變成:

重新讀 PDF
↓
重新跑整份 AI analysis
↓
重新生成 Flow / Concept Map
↓
再跑 Explain This

這樣不只慢,還會莫名多花一堆 API 費用。

所以今天另一個重要的改動,是把主要分析結果保存到:

st.session_state

現在邏輯比較像:

第一次按 Visualize

PDF
↓
完整分析
↓
結果存進 session_state

之後再按:

Explain this

只會:

取出已經存在的 analysis
↓
抓對應 context
↓
送一個比較小的 Explain This request

不會重新分析整份教材。

這個功能從畫面上其實看不出來,但我覺得它對真的要拿來用很重要。

同一個地方也不要一直付錢

既然已經開始處理 state,我也順便把 Explain This 本身做了簡單的 cache。

系統會根據:

目前這份教材
+
target type
+
target identity

記住這個解釋。

所以如果我剛剛已經問過:

Page 2 這張 sinusoidal graph 是什麼意思?

再點一次同一個 Explain This,不需要重新呼叫 API。

直接把剛剛的結果拿回來。

但只要重新分析另一份教材,舊的 Explain This 就會清掉,不會把上一份教材的解釋亂帶過來。

這次開始第一次真的需要認真想:

AI 功能不是「能 call API」就結束了。

如果每按一個按鈕就重新算全部東西,就算功能正確,產品用起來還是會很怪。

Source context 也要講清楚

Explain This 還有一個我很在意的地方。

例如 AI 為了讓我更好懂,可能會補一些教材裡沒有直接寫出的背景知識。

這本身不一定是壞事。

問題是不能讓使用者以為:

「這些全部都是原始 PDF 寫的。」

所以 Explain This 最下面會留一個 Source context。

例如:

來源:PDF 第 2 頁
已使用來源材料,並加入一般概念說明。

也就是把:

教材直接支持的資訊

和:

AI 為了教學補充的一般知識

稍微分開。

這件事還是延續前幾天 Source Check 的方向。

視覺化做得越漂亮、解釋講得越自然,我反而越不希望來源變得模糊。

第一版其實還很陽春

目前 Explain This 還不是我最終想要的樣子。

現在可以點:

Key Concept
Visual Evidence

但還不能:

點 Concept Map 節點
點 Flow 裡某一步
點 Comparison 的某個儲存格
反白任意一句文字
繼續問「我還是不懂」
選擇「講簡單一點」
選擇「給我一個例子」

這些我都覺得很適合後面慢慢加。

例如未來 Concept Map 可能會變成:

          相位差 φ
              ↓
        [ Explain this ]

        白話解釋
        為什麼重要
        看公式
        看波形
        回原始教材

甚至不是再開一個 AI Chat。

而是教材本身就可以一層一層展開。

Day 9:第一次開始跟生成結果互動

前八天大部分做的事情其實都是:

輸入教材
↓
AI 分析
↓
輸出結果

即使有 Flow、Concept Map、Comparison,本質上還是:

AI 生完,我看。

Day 9 第一次開始變成:

輸入教材
↓
AI 整理
↓
我看到某個地方不懂
↓
直接點它
↓
AI 針對這裡再解釋

這個改動表面上只多了一顆:

Explain this

但我覺得方向差很多。

因為我一開始想做 Visual Learning Lab,不只是想把教材變漂亮。

真正想解的其實是:

當我「看不懂」的那一刻,有沒有辦法立刻幫我跨過去?

以前那個瞬間代表:

離開教材
→ 開 AI
→ 複製
→ 貼上
→ 補 context
→ 問問題

現在第一次變成:

看不懂
↓
Explain this

還很陽春。

但我覺得這開始比較像我真正想做的東西了。

下一步,Visual Learning Lab 已經累積到一個程度,我想先把目前這個版本真正放到網路上。

不只是我自己在 localhost 玩。

而是讓別人真的可以打開一個網址,把自己的教材丟進去。

GitHub Repo:
https://github.com/f24131128-lgtm/visual-learning-lab


上一篇
Day 8|不是所有內容都該畫圖:有些東西其實更適合直接比較
下一篇
Day 10|做了 9 天,Visual Learning Lab 終於不是只能在我電腦上跑了
系列文
AI Visual Learning Lab: 30 天用 ChatGPT × Codex 打造 AI 視覺化學習工具10
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言